package com.ruoyi.weiriya.service;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.weiriya.domain.WSocketTwo;

import java.util.Map;

/**
 * 插座信息Service接口
 * 
 * @author ruoyi
 * @date 2023-08-16
 */
public interface IWSocketTwoService extends IService<WSocketTwo>
{
    /**
     * 开启或关闭插座
     * @param firmId 厂商ID
     * @return 充电业务号
     */
    String openOrCloseSocket(String firmId, String portIndex, int type);

    /**
     * 获取设备信息
     * @param suid 设备ID
     * @return
     */
    WSocketTwo getBySuid(String suid);

    /**
     * 获取设备插口状态
     * @param suid 设备ID
     * @return
     */
    Map getStatusBySuid(String suid);


    /**
    * 初始化插座信息
    */
    void initAll();

    /**
     * 插座心跳上报
     */
    void heartbeat(JSONObject object);

    /**
     * 充电结束上报
     */
    void chargeEnd(JSONObject object);

    /**
     * 按功率充电结束上报
     */
    void powerEnd(JSONObject object);

    /**
     *  NFC刷卡充电开始上报
     */
    void swipeBegin(JSONObject object);

    /**
     *  NFC刷卡充电结束上报
     */
    void swipeEnd(JSONObject object);

    /**
     * 网关心跳上报
     */
    void gatewayHeartbeat(JSONObject object);

    /**
     * NFC刷卡查余额请求
     */
    void swipeWallet(JSONObject object);

    /**
     * 公用
     */
    void common(JSONObject object);
}
